// InitList(*L);
// DestoryList(*L);
// ClearList(*L);
// ListEmpty(L);
// ListLength(L);
// GetElem(L, i, *e);
// LocateElem(L, e);
// PriorElem(L, cur_e, *pre_e);
// NextElem(L, cur_e, *next_e);
// ListInsert(*L, i, e);
// ListDelete(*L, i, *e);
// ListTraverse(L);

#include <stdio.h>
#include <stdlib.h>

#define TRUE 1
#define FALSE 0
#define OK 0
#define ERROR 1
#define INFEASIBLE -1
#define OVERFLOW -2
#define INDEX_ERROR  -1

#define LIST_INIT_SIZE  100
#define LIST_INCREMENT  10

typedef int ElemType;

typedef struct {
    ElemType *elem;
    int length;
    int size;
    int incrementsize;
} List;

void increment(List *L);
void ErrorMessage(char *s);

void InitList(List *L);
void ListInsert(List *L, int i, ElemType e);
